home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / ODF Release 3 / ODFDev / ColorExtension / Sources / CEExtnsn.cpp < prev    next >
Encoding:
Text File  |  1996-12-16  |  3.5 KB  |  96 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                CEExtnsn.cpp
  4. //    Release Version:    $ ODF 3 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #define CE_OColorExtension_Class_Source
  11.  
  12. #include "CEExtnsn.xih"
  13.  
  14. #ifndef FWODFEXC_H
  15. #include "FWODFExc.h"
  16. #endif
  17.  
  18. #ifndef SOM_ODPart_xh
  19. #include "Part.xh"
  20. #endif
  21.  
  22. //========================================================================================
  23. //    class CE_OColorExtension
  24. //========================================================================================
  25.  
  26. //----------------------------------------------------------------------------------------
  27. //    CE_OColorExtension::InitColorExtension
  28. //----------------------------------------------------------------------------------------
  29.  
  30. SOM_Scope void  SOMLINK CE_OColorExtension__InitColorExtension(CE_OColorExtension *somSelf, Environment *ev,
  31.         ODPart* base,
  32.         somToken refCon,
  33.         CE_HColorExtensionProcGlue colorExtensionProcGlue)
  34. {
  35.     CE_OColorExtensionData *somThis = CE_OColorExtensionGetData(somSelf);
  36.     CE_OColorExtensionMethodDebug("CE_OColorExtension","CE_OColorExtension__InitColorExtension");
  37.     
  38.     somThis->fRefCon = refCon;
  39.     somThis->fColorExtensionProcGlue = colorExtensionProcGlue;
  40.     
  41.     somSelf->InitExtension(ev, base);
  42. }
  43.  
  44. //----------------------------------------------------------------------------------------
  45. //    CE_OColorExtension::SetForegroundColor
  46. //----------------------------------------------------------------------------------------
  47.  
  48. SOM_Scope void  SOMLINK CE_OColorExtension__SetForegroundColor(CE_OColorExtension *somSelf, Environment *ev,
  49.         short red,
  50.         short green,
  51.         short blue)
  52. {
  53.     CE_OColorExtensionData *somThis = CE_OColorExtensionGetData(somSelf);
  54.     CE_OColorExtensionMethodDebug("CE_OColorExtension","CE_OColorExtension__SetForegroundColor");
  55.     
  56.     if (somSelf->IsValid(ev))
  57.         (somThis->fColorExtensionProcGlue->_fForeColorProcGlue)(ev, somThis->fRefCon, red, green, blue);
  58.     else
  59.         FW_SetEvError(ev, kODErrInvalidExtension);
  60. }
  61.  
  62. //----------------------------------------------------------------------------------------
  63. //    CE_OColorExtension::SetBackgroundColor
  64. //----------------------------------------------------------------------------------------
  65.  
  66. SOM_Scope void  SOMLINK CE_OColorExtension__SetBackgroundColor(CE_OColorExtension *somSelf, Environment *ev,
  67.         short red,
  68.         short green,
  69.         short blue)
  70. {
  71.     CE_OColorExtensionData *somThis = CE_OColorExtensionGetData(somSelf);
  72.     CE_OColorExtensionMethodDebug("CE_OColorExtension","CE_OColorExtension__SetBackgroundColor");
  73.  
  74.     if (somSelf->IsValid(ev))
  75.            (somThis->fColorExtensionProcGlue->_fBackColorProcGlue)(ev, somThis->fRefCon, red, green, blue);
  76.        else
  77.            FW_SetEvError(ev, kODErrInvalidExtension);
  78. }
  79.  
  80. //----------------------------------------------------------------------------------------
  81. //    CE_OColorExtension::Release
  82. //----------------------------------------------------------------------------------------
  83.  
  84. SOM_Scope void  SOMLINK CE_OColorExtension__Release(CE_OColorExtension *somSelf, Environment *ev)
  85. {
  86.     CE_OColorExtensionData *somThis = CE_OColorExtensionGetData(somSelf);
  87.     CE_OColorExtensionMethodDebug("CE_OColorExtension","CE_OColorExtension__Release");
  88.  
  89.     FW_Boolean isValid = somSelf->IsValid(ev);
  90.     
  91.     CE_OColorExtension_parent_ODExtension_Release(somSelf,ev);
  92.     
  93.     if (!isValid && somSelf->GetRefCount(ev) == 0)
  94.         delete somSelf;
  95. }
  96.